const { Router } = require('express')
const router = new Router()

// 引入用户信息模型
const UserInformationModel = require('../../model/userImformation')

function oprater(request,response){
    const { _id, addressDetail, name, tel, areaCode, province, city, county, postalCode, isDefault } = request.query
    UserInformationModel.findOneAndUpdate({
        _id,
    },{
        $push:{
            addressArr:{
                hostId: _id,
                name,
                addressDetail,
                tel,
                areaCode,
                province,
                city,
                county,
                postalCode,
                isDefault
            }
        }
    },function (err,doc) {
        const data = {
            code: '200'
        }
        if (err){
            if (addressId){

            }
            data.msg = '新增地址失败'
            data.data = 'error'
        } else {
            data.msg = '新增地址成功'
            data.data = 'success'
        }
        return response.json(data)
    })
}


router.get('/addAddress',(request,response)=>{
    const {_id, isDefault} = request.query

    // 如果是新增地址改为了默认地址，那就要把之前的默认地址改掉，在对子文档进行操作
    // 因为传递过来的isDefault是字符串类型，防止它又变成bol类型所以加了一个 ||
    if(isDefault == 'true' || isDefault == true){
        UserInformationModel.updateOne({
            _id,
            addressArr: {
                $elemMatch: {
                    isDefault: true
                }
            }
        },{
            $set:{
                // 这一步是这样子写是固定的，不然无法保留原有数据
                "addressArr.$.isDefault": false
            }
        },function (err,doc) {
            let data = {
                code: '200'
            }
            if (err){
                data.data = 'error'
                data.msg = '修改默认地址失败'
                return response.json(data)
            } else {
                oprater(request,response)
            }
        })
    }else {
        oprater(request,response)
    }
})

module.exports = router
